home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / PLUS4 / plus4disk2.d64 / ch4.02 anim < prev    next >
Text File  |  2009-01-03  |  7KB  |  89 lines

  1. Ç*NB"1:CH4.02  ANIM"            "1:CHX INTRO"   "1:CHX.XX"
  2. Ç*SP0:LM8:RM62:PP66:PG59
  3. Ç*FT0:-----------------------,,----------
  4. Ç*FS3:(C) 1984 ┼LIZABETH ─EAL,,         Ç#
  5. Ç*VP3:HL8:HR72:HD0:├16/+4: ╞┴╠╠╔╬╟ ╙╔╟╬                ,,╙ECTION XX
  6. Ç*HS2:------------------------------------,,----------
  7. ╙ECTION
  8. Ç*LN2:CN1;╞┴╠╠╔╬╟ ╙╔╟╬Ç*LN2:CN0
  9.      ╘HIS PROGRAM PRINTS A MESSAGE ON TOP OF THE SCREEN. ╘HE MESSAGE THEN FALLS DOWN, ONE LETTER AT A TIME, RANDOMLY. ╔NCLUDED ARE SOUNDS APPROPRIATE TO THE TASK.
  10.  
  11.      ╘HE PROGRAM USES DEFINED CHARACTERS FROM THE PREVIOUS SECTION. ┘OU DO NOT HAVE TO HAVE THEM, BUT IT WOULD BE NICE, IF THEY ARE STILL IN THE COMPUTER. ╔F THEY AREN'T, YOU CAN ╠╧┴─"╬┼╫ ├╚┴╥" AND ╥╒╬ IT BEFORE TYPING THIS IN.
  12.  
  13. // PRG: ├-16 FALLS //
  14.  
  15. Ç*FP20
  16. ***  ╓┴╥╔┴┬╠┼╙  ***
  17.  
  18. ─$   POSITIONING STRING
  19. ╠1 AND ╠2 SCREEN LINE NUMBERS
  20. ╓╠   ╘┼─ VOLUME REGISTER
  21. ╓$   THE SIGN WE PRINT
  22. ├$   COLORS OF EACH LETTER IN THE SIGN
  23. ╠$   LUMINANCE OF EACH LETTER IN THE SIGN
  24. ╠╓Çú  LENGTH OF THE MESSAGE
  25. ╪    TAB POSITION FOR CENTERING ON THE LINE
  26. ├%() TABLE OF COLORS OF THE LETTERS
  27. ╠%() TABLE OF LUMINANCES
  28. ─    TIME DELAY
  29. ╚$   TABULATES LETTERS USED ALREADY
  30. ╥    RANDOM NUMBER FOR LETTER PICKING
  31. ╪%   RANDOM NUMBER FOR EXPLOSION SOUND
  32. ┴$   WORKING VALUE: ANY CHARACTER FROM
  33.      THE STRING
  34. ═    COUNTS TIME DELAY IN PRINTING
  35. ╔$   KEYBOARD INPUT
  36.  
  37.      ╘HE SCREEN LOOKED LIKE THIS AFTER SEVERAL PASSES THROUGH THE PROGRAM (THE PICTURE IS COMPRESSED):
  38.  
  39. // PIC: C16FALLS //
  40.  
  41.      ┘OU HAVE TO USE A BIT OF IMAGINATION HERE. ╘HE PRINTER DIDN'T KNOW ABOUT OUR NEW CHARACTERS, SO THIS PICTURE REFLECTS A STATE OF AFFAIRS, BUT NOT EXACT DETAILS.
  42.  
  43. Ç*FP3
  44. ***  ╔╬╙╘╥╒├╘╔╧╬╙  ***
  45.  
  46.      ╔N LINE 150, ─$ IS MADE UP OF ╚╧═┼ AND ONE CURSOR-DOWN CHARACTERS. ╔N LINE 170, ├╚╥$(14) PLACES THE COMPUTER IN UPPER CASE/GRAPHICS MODE, AND IN THE QUOTES WE HAVE ├╠┼┴╥-THE-SCREEN AND ONE CURSOR DOWN CHARACTERS. ╔N LINE 320 WE HAVE, IN QUOTES AGAIN, A SPACE, CURSOR DOWN AND CURSOR LEFT. ╘HEN ┴$, WHICH YOU CAN SEE, FOLLOWED BY ONE CURSOR LEFT IN QUOTES.
  47.  
  48.      ╙┴╓┼ THE PROGRAM BEFORE RUNNING. ╘HEN INSERT A ╥┼═ IN LINE 140. ╘HIS IS THE, NOW FAMILIAR, LINE WHICH SETS UP OUR SPECIAL CHARACTERS. ╦EEP THIS LINE DISABLED UNTIL YOU HAVE NO ERRORS IN THE PROGRAM. ╘HEN REMOVE THE ╥┼═ARK.
  49.  
  50.      ╘O STOP THE PROGRAM AT ANY TIME PRESS ╤, HEAR THE FINAL BOOM, THEN PUSH ANY OTHER KEY.
  51.  
  52. ***  ─┼╘┴╔╠╙  ***
  53.  
  54.      ╘HE MESSAGE WE USE IS THE SAME AS IN THE PREVIOUS SECTION. ╔T IS IN ─┴╘┴ LINES. ┬UT THIS TIME WE MAKE EACH OF THE VERTICAL BAR LETTERS A DIFFERENT COLOR AND LUMINANCE. ╔T IS A LITTLE TRICKY TO SET THEM UP. ╘WO ─┴╘┴ LINES, HOWEVER, TAKE CARE OF THE SETUP EASILY. ╘HE NICE THING IS THAT YOU CAN CHANGE IT EQUALLY EASILY. ╔F YOUR ╘╓ OR MONITOR DOESN'T SHOW THE RIGHT COLORS, YOU CAN PLAY WITH THE LAST TWO ─┴╘┴ LINES UNTIL YOU LIKE WHAT YOU SEE. ┘OU DO NOT HAVE TO MODIFY THE REST OF THE CODE.
  55.  
  56.      ╙INCE THERE ARE SEVERAL SEPARATE TASKS THIS PROGRAM PERFORMS, THE ─┼╘┴╔╠╙ SECTION IS SUBDIVIDED INTO PARTS.
  57.  
  58. ***  ├╧─╔╬╟ ├╧╠╧╥╙ ┴╬─ ┬╥╔╟╚╘╬┼╙╙  ***
  59.  
  60.      ╘HE FIRST ─┴╘┴ LINE AFTER THE MESSAGE ITSELF CONTAINS COLOR NUMBERS, CODED AS LETTERS. ╙O COLOR 1 IS ┴, COLOR 3 IS ├ AND SO ON. ╘HE SECOND ─┴╘┴ LINE CONTAINS LUMINANCES FOR EACH COLOR. ╘HE TRANSLATION IS OBVIOUS: A ZERO IS A ZERO, AND A 7 IS A 7. ╠INE THEM UP PROPERLY, AND YOU HAVE AN EASY THING TO WORK WITH.
  61.  
  62.      ╠INE 160 READS THE ─┴╘┴ LINES, AND  DECIDES ON CENTERING THE STRING (╪ VALUE). ╠INES 170-200 DO A LOT OF WORK. ╘HEY SET UP A TABLE OF COLORS AND LUMINANCES FOR EACH LETTER. ╘HEY PRINT ONE LETTER AT A TIME AND CLICK THE SPEAKER A LITTLE. ╘HE MAIN REASON FOR THE TABLES IS SPEED - ANIMATION IN ┬┴╙╔├ IS SLOW, THE MORE VALUES WE SETUP BEFOREHAND, THE FASTER WILL THINGS MOVE.
  63.      
  64. ***  ╫╚╧'╙ ╬┼╪╘?  ***
  65.      
  66.      ╬OW THE MEAT OF THE PROGRAM. ╠INES 210-270 PICK UP RANDOM LETTERS AND DROP THEM. ╘HIS REQUIRES CARE: WE HAVE A "HIT-LIST" IN STRING ╚$. ╔F A LETTER ALREADY DROPPED, WE MARK IT WITH AN ╪ TO PREVENT US FROM TRYING TO DROP IT AGAIN. ╘HE RANDOM NUMBER GENERATOR (╥╬─ IN LINE 220) MUST ALWAYS GIVE A NEW VALUE.
  67.      
  68.      ╧NCE WE GET A VALUE, THEN IF A LETTER IN THE ORIGINAL STRING IS NOT A SPACE WE PRINT IT AT TAB POSITION ╪ PLUS THE RANDOM NUMBER (ONE IS SUBTRACTED, BECAUSE ╘┴┬ COUNTS FROM ZERO). ╔F IT IS A SPACE, WE DO NOTHING. ╫E LOOP BACK FOR MORE WORK (UNLESS YOU PUSHED THE ╤-KEY) IF THERE ARE MORE LETTERS TO DO.
  69.      
  70.      ╙OME LETTERS JUST FALL AND MAKE A SOUND. ╧THERS CAUSE AN EXPLOSION SOUND, THIS IS DETERMINED BY ANOTHER ╥╬─ NUMBER, IN LINE 260. ╔T'S ARBITRARY. ┘OU CAN CHANGE IT.
  71.      
  72. ***  ═┴╦╔╬╟ ╠┼╘╘┼╥╙ ╞┴╠╠ ─╧╫╬  ***
  73.      
  74.      ╚OW DO WE MOVE LETTERS DOWN THE SCREEN? ╔T'S A WHOLE DIFFERENT STORY. ╘HAT'S CODED IN A SUBROUTINE IN LINES 300-350. ╔GNORE THE ╙╧╒╬─ AND ╓╧╠ COMMANDS FOR A WHILE. ┴LL THE REST HAS TO TO WITH PRINTING AND ERASING A CHARACTER AT SUCCESSIVELY HIGHER LINE NUMBERS.
  75.      
  76.      ╘HE FALL IS FROM LINE ╠1 TO ╠2. ╧N EACH LINE WE SET THE COLOR AND LUMINANCE TO THE VALUES WE SAVED BEFORE. ╫E PRINT A SPACE TO WIPE THE EXISTING CHARACTER, CURSOR DOWN, CURSOR LEFT, THE FALLING CHARACTER, ┴$, GIVEN TO US BY THE MAIN PROGRAM (LINE 240), AND CURSOR LEFT AGAIN. ╙O THE CURSOR IS LEFT RIGHT ON THE CHARACTER. ╬EXT TIME AROUND THE SPACE GETS PRINTED OVER IT, AND SO ON, AND ON UNTIL WE REACH LINE ╠2. ┘OU COULD TRY THIS PROCESS IN DIRECT MODE WITH THE CURSOR. ╔F YOU FOLLOW THE STEPS, YOU'LL UNDERSTAND ONE WAY OF MOVING CHARACTERS ON THE SCREEN.
  77.      
  78. ***  ╞┴╠╠╔╬╟ ┴╬─ ┼╪╨╠╧╙╔╧╬ ╙╧╒╬─╙ ***
  79.      
  80.      ╫E USE ╙╧╒╬─1 WHILE FALLING. ╔TS PITCH CHANGES IN RELATION TO LINE NUMBER. ┘OU CAN REALLY CHANGE THE FORMULA IN LINE 310 TO ANYTHING YOU WISH. ╘HE "2" IN THE THIRD VALUE OF THE ╙╧╒╬─ COMMAND IS THE SOUND'S DURATION. ╨LAY WITH IT TO SEE IF YOU CAN COORDINATE THE DURATION WITH THE RATE OF FALL. ╘HE DURATION RUNS INDEPENDENT OF ┬┴╙╔├ PROGRAM. ╔F IT BOTHERS YOU, YOU MAY INSERT ╙╧╒╬─1,0,0 COMMAND  AS THE LAST THING IN LINE 300.
  81.      
  82.      ╫HEN WE NEED THE EXPLOSION SOUND OR THE CLICKING SOUNDS, WE USE THE SUBROUTINE IN LINES 330-350. ╔T IS RARE TO HAVE TO ╨╧╦┼ THINGS IN THIS COMPUTER, BUT TO PRODUCE A NOISE-TYPE-SOUND WITH VARYING VOLUME, WE HAVE TO RESORT TO ╨╧╦┼ING THE MEMORY WHERE THE ╓╧╠ IS SET. ╧THERWISE, PLAIN ┬┴╙╔├ ╓╧╠ CHANGE COMMAND DOES ABSOLUTELY NOTHING, UNTIL ITS DURATION IS EXHAUSTED, WHICH IS WHEN WE DON'T NEED IT ANY MORE.
  83.  
  84. ***  ╨╥╧╩┼├╘╙  ***
  85.  
  86.      ├HANGE THE MESSAGE. ├HANGE THE COLOR AND LUMINANCES OF THE CHARACTERS. ├HANGE THE SPAN OF THE SCREEN LINES ON WHICH THE DROP OCCURS. ├HANGE THE SOUNDS.
  87.  
  88.      ╔F YOU HAVE TROUBLE UNDERSTANDING HOW LETTERS ARE PICKED AND KEPT TRACK OF, INSTERT THE ╙╘╧╨ COMMAND SOMEWHERE BETWEEN LINE 210 AND 270 AND PRINT THE RELEVANT VARIABLES: ╓$, ╚$, ┴$, AS WELL AS ╥ AND ╪. ┘OU CAN CONTINUE THE PROGRAM FROM WHERE IT LEFT OFF BY TYPING ├╧╬╘ AND PUSHING ╥┼╘╒╥╬.
  89.